Computer systems of all types have increased greatly in complexity in recent years. One result of this increase in complexity is the tailoring of hardware, software and firmware configurations of computers to particular end users. This now happens with all types of computer including PCs and servers.
When a user orders a computer a particular configuration is specified. This will comprise a hardware configuration, firmware in which reside many of the basic routines required to make the hardware run, and a software configuration or a software stack which includes all the software the user specifies including the particular operating system he wishes to use, any optional modules to that operating system to give particular types of enhanced functionality and usually a number of application programmes which run within the operating system.
The hardware configuration comprises a number of components, some of which have optional settings which are set at the factory when the computer is manufactured to conform with a particular user's requirement.
The firmware comprises a number of components, mostly memory units of the read only type pre-loaded with software to run various routines operations on the hardware configuration, in dependence on the hardware configuration selected. The software configuration usually includes an operating system for the hardware and a number of application programmes. These are contained as a software stack which usually resides on a hard disc in the computer system. These programmes are stored in files on the hard disc or other storage medium.
At present, there are no tools available for checking at the point of manufacture whether or not a hardware, firmware, or software configuration has been correctly installed to fulfil a customer's requirements. With the fast rate of development of computer technology this can lead to installation errors in the configurations for example incompatibility between a software file and the latest version of a particular version of hardware. If these are not picked up at manufacture, they do not become apparent until a computer system is installed at its end destination and use of it is commenced. Even then, some parts of the configuration are not accessed particularly frequently and it therefore may be some time before the error is detected.